Improving Multi-Application Concurrency Support Within the GPU Memory System
نویسندگان
چکیده
GPUs exploit a high degree of thread-level parallelism to efficiently hide long-latency stalls. Thanks to their latencyhiding abilities and continued improvements in programmability, GPUs are becoming a more essential computational resource. Due to the heterogeneous compute requirements of different applications, there is a growing need to share the GPU across multiple applications in large-scale computing environments. However, while CPUs offer relatively seamless multi-application concurrency, and are an excellent fit for multitasking and for virtualized environments, GPUs currently offer only primitive support for multi-application concurrency. Much of the problem in a contemporary GPU lies within the memory system, where multi-application execution requires virtual memory support to manage the address spaces of each application and to provide memory protection. In this work, we perform a detailed analysis of the major problems in state-of-the-art GPU virtual memory management that hinders multi-application execution. Existing GPUs are designed to share memory between the CPU and GPU, but do not handle multi-application support within the GPU well. We find that when multiple applications spatially share the GPU, there is a significant amount of inter-core thrashing on the shared TLB within the GPU. The TLB contention is high enough to prevent the GPU from successfully hiding stall latencies, thus becoming a first-order performance concern. Based on our analysis, we introduce MASK, a memory hierarchy design that provides low-overhead virtual memory support for the concurrent execution of multiple applications. MASK extends the GPU memory hierarchy to efficiently support address translation through the use of multilevel TLBs, and uses translation-aware memory and cache management to maximize throughput in the presence of interapplication contention. MASK uses a novel token-based approach to reduce TLB miss overheads, and its L2 cache bypassing mechanisms and application-aware memory scheduling reduce the interference between address translation and data requests. MASK restores much of the thread-level parallelism that was previously lost due to address translation. Relative to a state-of-the-art GPU TLB, MASK improves system throughput by 45.2%, improves IPC throughput by 43.4%, reduces unfairness by 22.4%, and MASK performs within 23% of the ideal design with no translation overhead.
منابع مشابه
Performance optimization of Sparse Matrix-Vector Multiplication for multi-component PDE-based applications using GPUs
Simulations of many multi-component PDE-based applications, such as petroleum reservoirs or reacting flows, are dominated by the solution, on each time step and within each Newton step, of large sparse linear systems. The standard solver is a preconditioned Krylov method. Along with application of the preconditioner, memory-bound Sparse Matrix-Vector Multiplication (SpMV) is the most time-consu...
متن کاملEffects of Multi-core Memory Concurrency Limits on Multi-threaded Applications
Memory access is becoming an increasingly significant impediment to extracting performance out of multi-core systems. More than ever, the effectiveness of memory system use by an application is becoming a critical determinant of performance. In previous work, we demonstrated how explicit consideration of memory concurrency provides a better model for memory performance on multi-socket, multi-co...
متن کاملImproving Transactional Memory Performance for Irregular Applications
Transactional memory (TM) offers optimistic concurrency support in modern multicore architectures, helping the programmers to extract parallelism in irregular applications when data dependence information is not available before runtime. In fact, recent research focus on exploiting thread-level parallelism using TM approaches. However, the proposed techniques are of general use, valid for any t...
متن کاملSynergistic Data Placement for GPU On-chip Memory
General purpose GPU architecture has various types of on-chip memory: registers, software-managed cache, and hardware-managed cache. These on-chip memory resources are powerful yet difficult to maneuver. Each type of on-chip memory has its advantages/disadvantages, making it suitable for different types of data. Further, the on-chip memory contention at different levels affects hardware concurr...
متن کاملAccelerating Data Race Detection Utilizing On-Chip Data-Parallel Cores
Programmers are taking advantage of the increasing availability of onchip parallelism to meet the rising performance demands of diverse applications. Support of tools that can facilitate the detection of incorrect program execution when concurrent threads are involved is critical to this evolution. Many concurrency bugs manifest as some form of data race condition, and their runtime detection i...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1708.04911 شماره
صفحات -
تاریخ انتشار 2017